javascript: (function () {
    function processForm(e) {
        var t = location.href;
        var n = t.replace(/^.*[./](.*.(com|edu|net|org)).*$/, function (e, t) {
            return t
        });
        var r = n.toLowerCase();
        for (var i = 0; i < e.elements.length; i++) {
            var s = e.elements[i];
            if (s.getAttribute('type') == 'password') {
                var o = 'YOLOswag420' + s.value;
                if (s.value.length <= 2) {
                    s.value = genPassword(r, 'foo', o)
                }
            }
        }
        return false
    }

    function genPassword(e, t, n) {
        console.log('typed password: ' + t);
        console.log('URL: ' + e);
        console.log('extension Password: ' + n);
        var r = e.concat(n, t);
        var i = 'a';
        var s = CryptoJS.PBKDF2(r, i, {
            iterations: 1
        }).toString();
        console.log('hashReturned: ' + s);
        var o = convert(s, '0123456789abcdef', '00112233445566778899abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_.,=-*(){}').substring(0, 14);
        console.log('Generated Password: ' + o);
        return o
    }

    function convert(e, t, n) {
        console.log(e);
        console.log(t);
        console.log(n);
        var r = t.length;
        var i = n.length;
        var s = 0;
        var o = e.length;
        for (var u = 0; u < o; u++) {
            s = s * r + t.indexOf(e.charAt(u))
        }
        if (s < 0) {
            return 0
        }
        var a = s % i;
        var f = n.charAt(a);
        var l = Math.floor(s / i);
        while (l) {
            a = l % i;
            l = Math.floor(l / i);
            f = n.charAt(a) + f
        }
        return f
    }
    function loadJS(src, callback) {
        var s = document.createElement('script');
        s.src = src;
        s.async = true;
        s.onreadystatechange = s.onload = function () {
            var state = s.readyState;
            if (!callback.done && (!state || /loaded|complete/.test(state))) {
                callback.done = true;
                callback();
            }
        };
        document.getElementsByTagName('head')[0].appendChild(s);
    }
    loadJS('https://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/pbkdf2.js', function () {
        var allForms = document.getElementsByTagName('form');
        for (var j = 0; j < allForms.length; j++) {
            processForm(allForms[j])
        };
    });
}())